const express = require("express");
const fs = require("fs");
const path = require("path");
const app = express();

// 中间件函数
function recordMiddleware(req, res, next) {
  let { url, ip } = req;
  // 将信息文件保存在文件中 access.log
  fs.appendFileSync(path.resolve(__dirname, "./access.log"), `${url} -- ${ip}\r\n`);
  next();
}
app.use(recordMiddleware); // 使用中间件函数

/**
 * 静态资源中间件资源设置 当浏览器发送请求 如果是/ 服务器会首先找 index.html
 * 如果路由规则也写了 / 从上到下响应
 * 常规路由响应动态资源
 */
app.use(express.static(__dirname + "/public")); // 静态资源中间件
app.get("/home", (req, res, next) => {
  res.send("前台");
});

// 路由中间件
const checkCodeMiddleware = (req, res, next) => {
  if (req.query.code === "520") {
    next();
  } else {
    res.send("<p>请输入正确的暗号</p>");
  }
};
app.get("/admin", checkCodeMiddleware, (req, res) => {
  res.send("后台");
});
app.all("*", (req, res) => {
  res.send("404 Not Found");
});
app.listen(8001, () => {
  console.log("服务已经启动...");
});
